package cn.s1995.sloth.bizs.mapper;

import cn.s1995.sloth.bizs.oo.dto.ShopCartItemDTO;
import cn.s1995.sloth.bizs.oo.dto.ShopGetCartDTO;
import cn.s1995.sloth.common.data.datascope.SlothBaseMapper;
import cn.s1995.sloth.bizs.entity.Cart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface CartMapper extends SlothBaseMapper<Cart> {


    /**
     * 更新购物车满减活动id
     *
     * @param userId                 用户id
     * @param cartIdShopCartParamMap 购物项map
     */
    void updateDiscountItemId(@Param("userId") Long userId,
                              @Param("cartIdShopCartParamMap") Map<Long, ShopGetCartDTO> cartIdShopCartParamMap);

    /**
     * 获取购物项
     * @param userId 用户id
     * @return 购物项列表
     */
    List<ShopCartItemDTO> getShopCartItems(@Param("userId") Long userId);

    /**
     * 获取购物车失效列表
     * @param userId 用户id
     * @return 失效商品
     */
    List<ShopCartItemDTO> getShopCartExpiryItems(@Param("userId")Long userId);

    /**
     * 清除失效的购物项
     * @param userId 用户id
     */
    void cleanExpiryProdList(@Param("userId") Long userId);
}
